Computing devices often utilize a graphics processing unit (GPU) to accelerate the rendering of graphical data for display. Such computing devices may include, for example, computer workstations, mobile phones such as so-called smartphones, embedded systems, personal computers, tablet computers, and video game consoles. GPUs execute a graphics processing pipeline that includes a plurality of processing stages that operate together to execute graphics processing commands and output a frame. A central processing unit (CPU) may control the operation of the GPU by issuing one or more graphics processing commands to the GPU. Modern day CPUs are typically capable of concurrently executing multiple applications, each of which may need to utilize the GPU during execution. A device that provides content for visual presentation on a display generally includes a graphics processing unit (GPU).
Typically, a GPU of a device is configured to perform every process in a graphics processing pipeline. However, with the advent of wireless communication and the streaming of content (e.g., game content or any other content that is rendered using a GPU), there has developed a need for distributed graphics processing. For example, there has developed a need to offload processing performed by a GPU of a first device (e.g., a client device, such as a game console, a virtual reality device, or any other device) to a second device (e.g., a server, such as a server hosting a mobile game).